The background description provided herein is for the purpose of generally presenting the context of the disclosure. Work of the presently named inventors, to the extent the work is described in this background section, as well as aspects of the description that may not otherwise qualify as prior art at the time of filing, are neither expressly nor impliedly admitted as prior art against the present disclosure.
In FIG. 1, a system 100 includes a flash system 104 that communicates with a host 108. The flash system 104 includes a flash device 112 and a controller 116. The flash device 112 includes a storage array 120 and an access module 124. The storage array 120 includes flash systems such as NAND flash cells. The access module 124 is responsible for performing writes and reads to the storage array 120, while the controller 116 is configured to respond to requests by the host 108 and manage higher-level functionality of the flash device 112, such as wear leveling.
In FIG. 2, a flowchart shows operation of the flash system 104 in response to a request from the host 108. Control begins at 204, where a page is read from the flash device. At 208, hard decisions from the page corresponding to the read request are sent to the controller. At 210, control decides whether a transmission retry is needed. If so, control transfers to 212 to send soft information corresponding to the read request to the controller, and control then continues at 216. While hard decisions indicate whether each of the cells appears to have stored a 0 or a 1, soft information indicates how likely it is that that the 0/1 determination was correct. The soft information may take time to be gathered, and therefore is not sent immediately following the hard decisions.
If a retry is not needed at 210, control continues at 216. In many prior art systems, elements 210 and 212 are not present, and no soft information is sent to the controller. Control therefore proceeds from 208 directly to 216. At 216, once the controller has all of the hard decisions, and potentially some soft information, the controller decodes the data and performs error correction. At 220, control sends the data to the host as a response to the read request.
In FIG. 3, a graphical representation of the order of transfer of data in response to a read is shown. The access module 124 first sends the hard decisions for the page, and then sends the soft information for the page. In various implementations, the hard decisions may be sent after performing a first read of the storage array 120, and the soft information may be sent in response to performing further reads of the storage array 120. For example, soft information may be obtained by adjusting thresholds used to read the contents of the storage array 120.